package com.zxe.noticeserver.mapper;

import com.github.pagehelper.Page;
import com.zxe.commonserver.annotation.AutoFill;
import com.zxe.commonserver.enumeration.OperationType;
import com.zxe.noticeserver.pojo.Notice;
import com.zxe.noticeserver.pojo.NoticePageQueryDTO;
import com.zxe.noticeserver.pojo.NoticeVO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface NoticeMapper {

    /**
     * 新增公告
     * @param notice
     */
    @AutoFill(value = OperationType.INSERT)
    void insert(Notice notice);

    /**
     * 公告分页查询
     * @param noticePageQueryDTO
     * @return
     */
    Page<NoticeVO> pageQuery(NoticePageQueryDTO noticePageQueryDTO);

    /**
     * 根据id删除公告
     * @param id
     */
    @Delete("delete from notice where id = #{id}")
    void delete(Long id);

    /**
     * 根据主键查询公告
     * @param id
     * @return
     */
    @Select("select * from notice where id = #{id}")
    Notice getById(Long id);

    /**
     * 修改公告
     * @param notice
     */
    @AutoFill(value = OperationType.UPDATE)
    void updateById(Notice notice);
}

